[レポート]ChatGPTに内製エンジンのシェーダーやシーケンスを作らせてみた #CEDEC2024 #classmethod_game

[レポート]ChatGPTに内製エンジンのシェーダーやシーケンスを作らせてみた #CEDEC2024 #classmethod_game

Clock Icon2024.08.25

ゲームソリューション部の えがわ です。

CEDEC2024に現地参加してきましたので、セッションレポートを書いていきます。
今回は「ChatGPTに内製エンジンのシェーダーやシーケンスを作らせてみた」の概要をお伝えします。

セッション概要

https://cedec.cesa.or.jp/2024/session/detail/s6605294509051/

近年AIの進化が目覚ましく、ゲーム開発の現場でもAIの活用が求められるようになってきました。
この状況に対して、私たちは内製エンジンの使い方をAIに回答させたり、AIでシェーダーやシーケンスなどのグラフ構造を持ったゲームデータを生成させたりする取り組みをしました。
本セッションでは内製エンジンの使い方をどのようにAIに学習させ、ゲーム開発者に対してどのようなAIサポートができるようになったかを説明します。

セッション内容

ChatGPTではUnityやUnrealEngineの質問はチューニングなしで答えられますが、内製エンジンは情報が閉じているため、ChatGPTが学習していません。

まず、対応目標として以下を挙げられています。

  • 内製エンジン「Luminous Engine」の使い方を回答できるようにする
  • 内製エンジンのデータを作成できるようにする

cedec2024_engine_shader_ai_01

システム構成

まず、ChatGPTを使用するためのシステム構成を作成する。

チャット動作環境

内製エンジンツールとSlackからAzure OpenAIを使用し、入出力を行っている。
Azure Functionsで認証やチャット処理を実装している。

cedec2024_engine_shader_ai_02

エンジン情報のアップロード

エンジン情報は以下の2つを使用している。

  • Confluenceで作成したエンジンのドキュメント
  • エンジンチームとゲーム開発チームのSlackでのやりとり

cedec2024_engine_shader_ai_03

ConfluenceとSlackの情報をJenkinsで毎日アップロードしている。

cedec2024_engine_shader_ai_04

RAG(検索拡張生成)

通常のチャットではLLMが学習していないことは回答できない。
ファインチューニングには時間とコストがかかるため今回は見送り。

cedec2024_engine_shader_ai_05

これを解決する効果的な方法がRAG
質問をChatGPTに投げる前にドキュメントの全文検索を行い、結果を取得する。

取得した結果を基にChatGPTが回答することができる。

cedec2024_engine_shader_ai_06

システム構成全体像

RAG用のデータはJenkinsがストレージに保存し、PDFや画像の解析も可能としている。

cedec2024_engine_shader_ai_07

AIチャットツール(ひすいちゃん)の作成

システムメッセージでキャラ付けを行っている。
5歳の女子という設定にすることで、間違った回答を行っても許容してもらいやすいといった効果もある。

cedec2024_engine_shader_ai_08

リアクション

答えられないときはリアクションだけ行う。
泣きアイコンだけを指定したはずが、考え中も使うようになるのが面白い。

cedec2024_engine_shader_ai_25

メンション

回答できないときは担当者をメンションする。

cedec2024_engine_shader_ai_09

関係ない人を含めた大量にメンションすることもありますが、5歳の女の子だったらしょうがない!

cedec2024_engine_shader_ai_10

AIチャットツールのまとめ

Slackのやりとりを学んでどんどん学習する。
誰も読まないドキュメントは書く気が失せるが、ひすいちゃんだけは見てくれるのでモチベーションになる。

cedec2024_engine_shader_ai_11

エンジンデータの作成

学習データについて

実際に使用している既存のデータを学習したほうが良いため、サンプルデータやプロジェクトのデータを学習に使用する。

cedec2024_engine_shader_ai_19

課題

シェーダーグラフをAI生成する課題として、出力トークンの制限がネックになっている。
可読性をできるだけ維持したままPythonのコードを短くする対応を行うことで、30 ~ 40%の削減が可能。

cedec2024_engine_shader_ai_20

生成精度向上について

GPT4 Omniで入出力トークン数が増え、出力も高速化されている。
AIが間違っていても否定するのではなく、AIに歩み寄り、学習のためのサンプルを見直すことが重要。

cedec2024_engine_shader_ai_23

エディタに組み込む

エディタにAIを組み込み、ユーザーがAIと直接会話できるようにしている。
生成されたPythonコードはボタン一つで実行でき、その結果としてVFXやUI、シェーダーグラフの作成も可能。
さらに、UndoやRedoの機能もサポートしており、作業の柔軟性と効率性が大幅に向上している。

cedec2024_engine_shader_ai_24

さいごに

本セッションを通じて、生成AIのゲーム開発への応用がますます進化していることを実感しました。
特に印象的だったのは、ドキュメントとSlackの情報を毎日学習することで、AIが継続的に進化していく点です。
従来のドキュメントだけでなく、実際のやりとりが含まれるSlackの情報も学習対象にすることで、より現実的で実用的な知識をAIが獲得できるというアプローチは目からうろこでした。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.